package com.jt.controller;

import com.jt.pojo.User;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

import java.util.Arrays;

@Controller     //将类交给SpringMVC,SpringMVC交给Spring容器管理
@ResponseBody       //将数据转化为转化为JSON串返回
//@RestController //将当前类的所有方法转化为JSON串
@CrossOrigin   //允许所有跨域
public class UserController {

    /**
     * URL地址： http://localhost:8080/hello   get请求
     * URL地址： http://localhost:8080/dog   get请求
     * URL地址： http://localhost:8080/cat   get请求
     * 参数：无
     * 返回值：你好，SpringMVC的字符串
     */
    @RequestMapping("/hello")
    public String hello() {
        return "你好，SpringMVC";
    }

    @RequestMapping("/dog")
    public String dog() {
        return "{\"code\":0,\"msg\":\"Dog\"}";
    }

    @RequestMapping("/cat")
    public String cat() {
        return "你好，SpringMVC猫";
    }

    /**
     * 需求：接收参数 name=xxx age=xxx
     * URL:http://localhost:8080/findUserByNA?name=tomcat&age=18
     * 返回值：“数据正确:name:age”
     * 返回值：toString()
     * 知识点：
     * 1.通过URL中的key获取数据
     * 2.如果参数多，则可以使用对象的方式接收，要求必须有set方法
     */
    @RequestMapping("/findUserByNA")
    public String findUserByNA(String name, int age) {

        return "数据正确：" + name + ":" + age;
    }

    @RequestMapping("/findUserByNA2")
    public String findUserByNA2(User user) {

        return user.toString();
    }

    /**
     * URL:http://localhost:8080/hobby?hobby=敲代码,睡觉,打游戏,熬夜
     * 参数: hobby=敲代码,睡觉,打游戏,熬夜
     * 返回值: 获取的参数返回即可
     * 知识点: 如果遇到同名提交问题.则SpringMVC可以采用数组接收.内部自动完成分割
     * 底层实现: hobby.split(",");
     */
    @RequestMapping("/hobby")
    public String hobby(String[] hobby) {
/*        String[] array = hobby.split(",");
        System.out.println(array[3]);*/
        //数组转换为字符串
        return Arrays.toString(hobby);
    }

    /**
     * URL:http://localhost:8080/findUser/tomcat/18/男
     * 参数:tomcat/18/男
     * 返回值：返回值获取得数据
     */
    @RequestMapping("/findUser/{name}/{age}/{sex}")
    public String findUser(User user) {

        return user.toString();
    }
    /**
     * URL:http://localhost:8080/findJSON?name=tomcat&age=18
     * 参数：name=tomcat&age=18
     * 返回值：User对象的JSON
     * */
    @RequestMapping("/findJSON")
    @ResponseBody//将返回值转化为JSON串
    public User findJSON(User user){
        //在业务层扩展数据
        user.setId(11);
        user.setSex("男");
        //user对象转化为JSON???
        return user;
    }
    /**
     * SpringMVC中的请求路径不能重复
     * */
}
